package com.loooooo.pm2024.modules.pm.selector;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.loooooo.pm2024.config.BigIDSerialize;
import com.loooooo.pm2024.data.BaseSelector;
import com.loooooo.pm2024.modules.pm.model.Issue;
import com.loooooo.pm2024.modules.pm.model.Task;

import java.io.Serializable;
import java.util.List;

public class TaskSelector extends BaseSelector<Task> implements Serializable {
    public TaskSelector() {
        super(new Task());
    }

    private Integer withLogList;

    private List<Long> issueIdList;
    private List<Long> ownerIdList;

    private Integer progressLTE;
    private Integer progressGTE;
    private Integer progressLT;
    private Integer progressGT;
    private Integer estimatedTimeLTE;
    private Integer estimatedTimeGTE;
    private Integer estimatedTimeLT;
    private Integer estimatedTimeGT;

    private Integer dayRemainingLTE;
    private Integer dayRemainingGTE;
    private Integer dayRemainingLT;
    private Integer dayRemainingGT;

    private Long expectedFinishAfter;
    private Long expectedFinishBefore;

    public Integer getDayRemainingLTE() {
        return dayRemainingLTE;
    }

    public void setDayRemainingLTE(Integer dayRemainingLTE) {
        this.dayRemainingLTE = dayRemainingLTE;
    }

    public Integer getDayRemainingGTE() {
        return dayRemainingGTE;
    }

    public void setDayRemainingGTE(Integer dayRemainingGTE) {
        this.dayRemainingGTE = dayRemainingGTE;
    }

    public Integer getDayRemainingLT() {
        return dayRemainingLT;
    }

    public void setDayRemainingLT(Integer dayRemainingLT) {
        this.dayRemainingLT = dayRemainingLT;
    }

    public Integer getDayRemainingGT() {
        return dayRemainingGT;
    }

    public void setDayRemainingGT(Integer dayRemainingGT) {
        this.dayRemainingGT = dayRemainingGT;
    }

    public Long getExpectedFinishAfter() {
        return expectedFinishAfter;
    }

    public void setExpectedFinishAfter(Long expectedFinishAfter) {
        this.expectedFinishAfter = expectedFinishAfter;
    }

    public Long getExpectedFinishBefore() {
        return expectedFinishBefore;
    }

    public void setExpectedFinishBefore(Long expectedFinishBefore) {
        this.expectedFinishBefore = expectedFinishBefore;
    }

    @JsonSerialize(using = BigIDSerialize.class)
    private Long ownerIdNot;

    private Long committedAfter;private Long committedBefore;

    public Long getCommittedAfter() {
        return committedAfter;
    }

    public void setCommittedAfter(Long committedAfter) {
        this.committedAfter = committedAfter;
    }

    public Long getCommittedBefore() {
        return committedBefore;
    }

    public void setCommittedBefore(Long committedBefore) {
        this.committedBefore = committedBefore;
    }

    public Integer getEstimatedTimeLTE() {
        return estimatedTimeLTE;
    }

    public void setEstimatedTimeLTE(Integer estimatedTimeLTE) {
        this.estimatedTimeLTE = estimatedTimeLTE;
    }

    public Integer getEstimatedTimeGTE() {
        return estimatedTimeGTE;
    }

    public void setEstimatedTimeGTE(Integer estimatedTimeGTE) {
        this.estimatedTimeGTE = estimatedTimeGTE;
    }

    public Integer getEstimatedTimeLT() {
        return estimatedTimeLT;
    }

    public void setEstimatedTimeLT(Integer estimatedTimeLT) {
        this.estimatedTimeLT = estimatedTimeLT;
    }

    public Integer getEstimatedTimeGT() {
        return estimatedTimeGT;
    }

    public void setEstimatedTimeGT(Integer estimatedTimeGT) {
        this.estimatedTimeGT = estimatedTimeGT;
    }

    public Integer getProgressLTE() {
        return progressLTE;
    }

    public void setProgressLTE(Integer progressLTE) {
        this.progressLTE = progressLTE;
    }

    public Integer getProgressGTE() {
        return progressGTE;
    }

    public void setProgressGTE(Integer progressGTE) {
        this.progressGTE = progressGTE;
    }

    public Integer getProgressLT() {
        return progressLT;
    }

    public void setProgressLT(Integer progressLT) {
        this.progressLT = progressLT;
    }

    public Integer getProgressGT() {
        return progressGT;
    }

    public void setProgressGT(Integer progressGT) {
        this.progressGT = progressGT;
    }

    public List<Long> getIssueIdList() {
        return issueIdList;
    }

    public void setIssueIdList(List<Long> issueIdList) {
        this.issueIdList = issueIdList;
    }

    public List<Long> getOwnerIdList() {
        return ownerIdList;
    }

    public void setOwnerIdList(List<Long> ownerIdList) {
        this.ownerIdList = ownerIdList;
    }

    public Integer getWithLogList() {
        return withLogList;
    }

    public void setWithLogList(Integer withLogList) {
        this.withLogList = withLogList;
    }

    public Long getOwnerIdNot() {
        return ownerIdNot;
    }

    public void setOwnerIdNot(Long ownerIdNot) {
        this.ownerIdNot = ownerIdNot;
    }
}
